Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [c#] conversioni tra classi
Forum - C# / VB.NET - [c#] conversioni tra classi

Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 19:01
Martedì, 09/03/2010
salve ho 2 classi, vorrei fare un modo che al verificarsi d 1 evento l'oggetto x di classe y diventasse 1 oggetto d classe z
in pratico vorrei convertire l'oggetto
c'è un modo x farlo?

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 20:14
Martedì, 09/03/2010
si può, alla peggio crei un nuovo oggetto del nuovo tipo, lo crei partendo dai dati del vecchio e via.

se spieghi la situazione particolare si può trovare trovare la soluzione migliore, valutare se è giusto farlo o se è una situazione dove è inattuabile.

Ultima modifica effettuata da netarrow il 09/03/2010 alle 20:15
PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 11:34
Venerdì, 12/03/2010
ho 1 classe composta da 5 attributi string, 1 di tipo string[] e 2 d tipo int,
ha 2 metodi costruttori in 1 s' inseriscono 4 parametri string mentre nel secondo 3 parametri string

poi ho 1 classe con 5 attributi string, con 2 metodi, 1 kiede 5 parametri string e il 2° ne rikiede 2.

vorrei avere la possibilità di poter convertire 1 oggetto della 1° classe in un oggetto della 2°, e viceversa

PM Quote
Avatar
shinobi (Normal User)
Newbie


Messaggi: 1
Iscritto: 12/03/2010

Segnala al moderatore
Postato alle 14:54
Venerdì, 12/03/2010
Testo quotato

Postato originariamente da microprocessore:

salve ho 2 classi, vorrei fare un modo che al verificarsi d 1 evento l'oggetto x di classe y diventasse 1 oggetto d classe z
in pratico vorrei convertire l'oggetto
c'è un modo x farlo?



Non so se ho capito bene quello che vuoi fare... mi pare di aver capito chce vuoi fare una sorta di cast.... quindi

O implementi un'interfaccia comune alle due classi oppure dihiari un operatore di conversione implicit/explicit in base a quello che ti serve

http://msdn.microsoft.com/it-it/library/z5z9kes2(VS.80).aspx'>http://http://msdn.microsoft.com/it-it/library/z5z9kes2(VS ...
http://msdn.microsoft.com/it-it/library/xhbhezf4(VS.80).aspx'>http://http://msdn.microsoft.com/it-it/library/xhbhezf4(VS ...

PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 19:28
Venerdì, 12/03/2010
Testo quotato

Postato originariamente da shinobi:

Testo quotato

Postato originariamente da microprocessore:

salve ho 2 classi, vorrei fare un modo che al verificarsi d 1 evento l'oggetto x di classe y diventasse 1 oggetto d classe z
in pratico vorrei convertire l'oggetto
c'è un modo x farlo?



Non so se ho capito bene quello che vuoi fare... mi pare di aver capito chce vuoi fare una sorta di cast.... quindi

O implementi un'interfaccia comune alle due classi oppure dihiari un operatore di conversione implicit/explicit in base a quello che ti serve

http://msdn.microsoft.com/it-it/library/z5z9kes2(VS.80).aspx'>http://http://msdn.microsoft.com/it-it/library/z5z9kes2(VS ...
http://msdn.microsoft.com/it-it/library/xhbhezf4(VS.80).aspx'>http://http://msdn.microsoft.com/it-it/library/xhbhezf4(VS ...


i link nn vanno

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:10
Domenica, 14/03/2010
Non puoi passare da un oggetto di un tipo a uno di un altro tipo se i due tipi non sono almeno logicamente collegati. Per eseguire un cast sarebbe necessario che uno derivi dall'altro, ma in questo caso è impossibile data la tipologia dei membri. Nemmeno l'alternativa dell'interfaccia può funzionare, poiché saresti in grado di passare da un tipo ad un'interfaccia, ma arrivato a quel punto non cambierebbe nulla: l'oggetto sarebbe sempre lo stesso, solo mediato dall'interfaccia. Ergo, non puoi eseguire un cast, ma al massimo una conversione.
Dovresti scrivere un operatore di conversione che si preoccupi di creare un nuovo oggetto del secondo tipo e trasferirvi tutti i dati contenuti nel primo.

Ultima modifica effettuata da Il Totem il 14/03/2010 alle 10:10
PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 10:56
Domenica, 14/03/2010
Testo quotato

Postato originariamente da Il Totem:

Non puoi passare da un oggetto di un tipo a uno di un altro tipo se i due tipi non sono almeno logicamente collegati. Per eseguire un cast sarebbe necessario che uno derivi dall'altro, ma in questo caso è impossibile data la tipologia dei membri. Nemmeno l'alternativa dell'interfaccia può funzionare, poiché saresti in grado di passare da un tipo ad un'interfaccia, ma arrivato a quel punto non cambierebbe nulla: l'oggetto sarebbe sempre lo stesso, solo mediato dall'interfaccia. Ergo, non puoi eseguire un cast, ma al massimo una conversione.
Dovresti scrivere un operatore di conversione che si preoccupi di creare un nuovo oggetto del secondo tipo e trasferirvi tutti i dati contenuti nel primo.


cosa intendi con "scrivere un operatore di conversione"?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 18:34
Lunedì, 15/03/2010

PM Quote